home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d14
/
baswind8.arc
/
README.DOC
< prev
next >
Wrap
Text File
|
1990-09-14
|
12KB
|
276 lines
SEPT, 1990
BASIC WINDOWS TOOLS
version 8.0
with
MS Mouse support
BY
James P. Morgan
5226 Via Hacienda #115
Orlando Fl. 32809
U.S.A.
* based on original PD works by *
Dave Evers
===========================================================================
As an introduction, let me say that the modifications and enhancements
made by myself, James P Morgan, were based on the original source code
as distributed by Mr Evers. This source coded was greatly enhanced by myself
and released into the Public Domain, with Mr. Evers permission.
This product, BASWIND, is a MAJOR enhancement and as such will stand
on its own merits. BASWIND was designed to support QuickBASIC 4.5 only
from the compile command line, however testing has been done from the
environment, with no problems found as yet.
Also, assembler mouse interface routines were written to provide
MS Mouse support. These routines (for now) were patterned after the
ADVBAS9A.ARC library of routines, available on most BBSs. My next goal
is to replicate MOST/ALL the asm routines in ADVBAS and some of the
other routines in Shareware/PD libraries and make them (source and all)
available.
With version 8.0 of BASWIND the source, .bas and .asm , is included as
well as a compiled QB4.5 version of the demo programs. The documentation
on how to interface to the various window/mouse routines is also included.
QB 2.0 and QB 3.0 will not be supported.
I hate to re-invent the wheel, but if we can put together a library of
public domain QB routines and .asm routines to match ADVBAS and GLIB and
others, then we can all benefit.
YOUR FEEDBACK IS NECESSARY IF YOU USE BASWIND AND WANT THIS EFFORT TO
CONTINUE.
- Version 8.00 is initially being distributed on
---------
1). THE PUBLIC (software) LIBRARY
P. O. Box 35705
Houston TX 77235-5705
Ph :713-721-5205 - 713-721-6104
Ask for disk : (see PSL catalogue)
2). PC ROCKLAND BBS - NY (bulletin board, one of the BEST)
Download file : BASWIND8.ZIP
Ph :914-353-2538 (open public - non-subscribers)
914-353-2157 (paid subscribers only)
Off the top of my head, some of the enhancements are:
-----------------------------------------------------
o For Version 8.0, some enhancements were:
o For some/most menus, where you make a selection based on the
first character of an option, the selection test is now case
insentitive. In otherwords upper/lower case does not matter.
o For some selection menus the mouse cursor does NOT follow
the keyboard. If you select an item with the keyboard or
cursor/page around, the mouse cursor stays where it is
located. This mainly applies to POPLIST and TAGLIST functions.
o Fixed bugs with incorrectly updating screen full of options.
This occured under some HOME/END/PAGE UP/PAGE DOWN conditions.
o For Version 7.0, some enhancements were to add support to allow
the array that holds screen images to exist outside Qbasics 'work'
area. In otherwords as a FAR array (allocated from high memory heap).
This now requires you to define the screen image array as DYNAMIC and
also for you to pass the ASM routines (SCRNSAVE, SCRNREST, SAVEWIND
and RESTWIND) the memory SEGMENT address and memory OFFSET (in
SEGMENT) of the array you are using to store screen image. The other
comments below (other bullet items) really apply to version 6.0
--------------------------
(when it was released).
Most ALL routines NOW REQUIRE an extra paramenter, RETURN.CODE%.
To support QuickBasics DIM syntax : DIM Array (-x TO +y), additional
considerations MUST be made (see RETURN.CODE% also above). BASWIND7
'normalizes' all array process AS IF user had passed arrays as,
OPTION BASE 1. This requires you to 're-normalize' selection value
returned to your REAL 'UBOUND' for array passed.
The mouse handling for QUERY/QUESTION/WARNING/CAUTION is different.
The mouse handling for selecting an item from a window list is also
different. You double-click on non hi-lited item to select OR single
click on hi-lited item, to select.
o Clicking on the right mouse button is same as pressing the
ENTER key. This has been functional, just not really documented.
o For the QUERY function, the QUERY window handling has been
enhanced to allow 'button' boxs of different size prompt messages.
The 'button' boxes will both be as large as biggest prompt.
Also QUERY box will now never be smaller than 'button' boxes.
o Assembler routines modified so that interrupts will NOT be
disabled for any long period of time. Async data was being lost
when writing to the screen (using .asm routines) with interrupts
turned off, to update the video buffer directly as fast as possible.
o For BASWIND7 the MOST significant feature is support for MS Mouse
and mouse drivers that are compatible with the MS mouse driver.
o Functions that now support a mouse STILL continue to support the key-
board. You can use the keyboard and mouse together or not. The mouse
DOES follow the keyboard cursor keys.
o Window 'shadowing' now is TRUE shadowing. Any screen image that is
in a window shadow is NOT overwritten by a completely black character
BUT will be turned into a white-on-black character (as if the charac-
ter WERE in the shadow of another image).
o All window modules will detect the calling "OPTION BASE" for arrays
and adjust all array handling routines accordingly .
o The sub programs can be compiled separately and put into a
".LIB" file for linking with separate standalone programs.
o The sub programs can ALL be made into one large ".BAS" (windows.bas)
file.
o Several bugs fixed, mainly the exploding windows bug and WAITTIME
midnite rollover.
o Windows that 'grow' and windows with 'shadow' are no longer mutually
exclusive. You can have a window 'grow' with a shadow.
o The options passed to most window functions can have leading spaces
(example : " Calander") . This could allow for "nested" type menu
options displayed.
o You can press the first letter of a MENU type option and the
cursor will JUMP immediately to next option which begins with
that character. The jump is circular, in other words the code
will look to the end of a array list and then start back at the front
and then back to the option the cursor was currently on.
o A "QUESTION" function window was added. If your program requires
a "YES/NO" reply , the "QUESTION" window will handle that kind of
requirement.
o The DEMO programs were modified to reflect and demonstrate the
the fixes and enhancements, to a better degree.
o All variables in sub programs strong-typed, in other words each
variable should have "$%#!" ending character to fully define its
data type.
o The Lotus 123 menu also supports "typing in of first character"
of option to select it (in addition to cursoring). Again the
"first letter" selection is a circular loop, in that all of the
options are checked, all the way back to the option that cursor
block is currently on.
o Most all windows will accept a "first character" selection key
or still allow you to cursor to the option you want to select.
o The source code "standardized" and structured for each sub program.
o The SCROLL function was defined in the WINDTOOL documentation,
was omitted in the original.
o The QUERY function was added. QUERY is a general purpose function
that serves as a template for such functions as WARNING/CAUTION.
WARNING/CAUTION/QUESTION were still included as separate functions
(for downward compatibility) even though they are now based on the
QUERY function (not standalone functions anymore).
o The CALENDAR functions were all stardardized around a 'commom'
sub-program. The KEYCAL and CALENDR3 modules are no longer separate
programs , but use the CALENDAR sub-program for most of their work.
o If you display a menu of items, you can pass the menu selection
you want to be the default (highlighted) when the menu initially
displayed.
o When a menu has more items than are/can be displayed , the top and
bottom window frames will display 'arrows'. Clicking on the up or
down 'arrow' will page the window in that direction.
o Menu windows that consist of more items than can be displayed
at once allow a Pageup/Pagedown to view the next window of selection
items. Such windows 'wrap' around now. If you are at the last menu
window, pressing Pagedown will display (wrap) the window menu of the
first group of item from which to select.
o When a menu window contains items from which you are to 'tag' some/
all/none for selection, you can pass the maximum number of items that
can be 'tagged' at one time.
These efforts on my part represent better than 300+ hours , so please
understand that i am not trying to "steal" any of Mr Evers work. Mr. Evers
original works are still in the Public Domain, along with a prior enhanced
version that i released , with Mr. Evers permisssion.
However , as with any software package, growth and evolution are nesess-
ary and in this case MAJOR enhancements and re-write makes this BASWIND,
a separate entity to stand on its own merits.
The current source , written in QuickBASIC 4.5 and the assembler
routines, will be made available on request:
Send a pre-paid mailer and formatted disk (5.25 or 3.5) to the address
below and allow 2-3 weeks for return mail. I have quite a few 'irons'
in the fire with other projects, so please understand. If you dont have
time or desire to put together a mailer, then send $10.00 and state type
of media you want the files returned on. For requests outside the conti-
nental U.S.A. please add an additional $5.00 (for a total of $15.00 US
funds ONLY). ONLY checks drawn on a US bank will be honored otherwise
the request cannot be processed.
You will receive the QuickBASIC source and source to all the .asm
routines, FOR YOUR NON-COMMERCIAL USE ONLY and will be entered into
a database (if volume warrents) so you can be notified of any additions
and/or enhancemets to QB routines or the .asm routine library.
****** (allow 2-3 weeks to receive the disks) ********
MAIL TO:
James P. Morgan
5226 Via Hacienda #115
Orlando FL, 32809
U.S.A.
and please give your complete return mailing address.
======================== end of readme.doc (JP)===========================